23

» WarCraft 3 / Условие триггера

Похожие вопросы:

ответ
Вестник Мондаса:
проверяй целочисленное на условие
Математика - Modulo (n mod 5) равно 0
т.е. берет остаток от деления n на 5 и сравнивает его с нулем
ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
~8gabriel8:
Джентельмены, очень извиняюсь, рассчитываю, что ваши рекомендации пригодятся мне в будущем, но в данном случае как-то умудрился пропустить, что в условиях boolean comparsion в самом низу начального предложения стоит Неуязвимость к магии. Мне конкретно в данном случае этого достаточно. Ещё раз прошу прощения за потраченное вами время)
ответ
Item-Type comparison -> Type of Acquired item == Твой тип.
ответ
Все оказалось куда проще, чем я думала. (PS: rsfghd уже это же и написал, но ты его не понял)
В первом варианте у тебя "Units in range matching condition", к ней подсказка
Use 'Matching Unit' to refer to the unit on whom the comparison is being performed.
А ты использовал (Picked unit)! Почему так нельзя? Потому что, matching condition = значит там Filter внутри, а внутри фильтра используется функция GetFilterUnit т.е. (matching unit).
из triggerstrings.txt:
GetEnumUnitHint="When using the 'Pick Every Unit...' action, this refers to each unit as it is picked."
GetFilterUnitHint="Use this to refer to the unit being considered for 'Units Matching Condition' functions."
А вот (Picked unit) можно использовать, когда просто есть проход по группе, как в твоем втором варианте.

Я тут вытащила код триггера из карты из war3map.j
Сгенерированный код триггера
===========================================================================
Trigger: IshillUltimte
===========================================================================
function Trig_IshillUltimte_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A001' ) ) then
return false
endif
return true
endfunction
function Trig_IshillUltimte_Func002Func001Func002C takes nothing returns boolean
if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_STRUCTURE) == false ) ) then
return false
endif
if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_GROUND) == true ) ) then
return false
endif
if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false ) ) then
return false
endif
if ( not ( IsUnitAlly(GetEnumUnit(), GetOwningPlayer(GetSpellAbilityUnit())) == false ) ) then
return false
endif
if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(GetSpellAbilityUnit())) == true ) ) then
return false
endif
if ( not ( GetOwningPlayer(GetEnumUnit()) != GetOwningPlayer(GetSpellAbilityUnit()) ) ) then
return false
endif
return true
endfunction
function Trig_IshillUltimte_Func002Func001C takes nothing returns boolean
if ( not Trig_IshillUltimte_Func002Func001Func002C() ) then
return false
endif
return true
endfunction
function Trig_IshillUltimte_Func002A takes nothing returns nothing
if ( Trig_IshillUltimte_Func002Func001C() ) then
call GroupAddUnitSimple( GetEnumUnit(), udg_UltimateIshillEffect )
else
endif
endfunction
function Trig_IshillUltimte_Func003A takes nothing returns nothing
call EnableTrigger( gg_trg_IshillPoison )
call UnitAddAbilityBJ( 'A000', GetEnumUnit() )
endfunction
function Trig_IshillUltimte_Func005A takes nothing returns nothing
call DisableTrigger( gg_trg_IshillPoison )
call UnitRemoveAbilityBJ( 'A000', GetEnumUnit() )
endfunction
function Trig_IshillUltimte_Actions takes nothing returns nothing
call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, "TRIGSTR_019" )
call ForGroupBJ( GetUnitsInRangeOfLocAll(600.00, GetUnitLoc(GetSpellAbilityUnit())), function Trig_IshillUltimte_Func002A )
call ForGroupBJ( udg_UltimateIshillEffect, function Trig_IshillUltimte_Func003A )
call TriggerSleepAction( 20.00 )
call ForGroupBJ( udg_UltimateIshillEffect, function Trig_IshillUltimte_Func005A )
call GroupClear( udg_UltimateIshillEffect )
endfunction
===========================================================================
function InitTrig_IshillUltimte takes nothing returns nothing
set gg_trg_IshillUltimte = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_IshillUltimte, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_IshillUltimte, Condition( function Trig_IshillUltimte_Conditions ) )
call TriggerAddAction( gg_trg_IshillUltimte, function Trig_IshillUltimte_Actions )
endfunction
Маленькие оптимизации:
  1. IsUnitAlly+GetOwningPlayer(GetSpellAbilityUnit()) и IsUnitEnemy по идее взаимоисключающие, хватило бы только IsUnitEnemy(...)
call ForGroupBJ( GetUnitsInRangeOfLocAll(600.00, GetUnitLoc(GetSpellAbilityUnit())), function Trig_IshillUltimte_Func002A )
  1. Тут утечка локации, потому что GetUnitLoc создает новую, но она потом не удаляется. Решение в ГУИ: записать GetUnitLoc в глобальную (или локальную) переменную, пройтись по группе, и удалить локацию (DestroyLocation).

Проблема: у тебя, как называется в местном жаргоне, триггер не MUI. То есть он работает только с одним юнитом одновременно, если два юнита используют заклинание, то оно сломается.
Посмотри на Trig_IshillUltimte_Actions. Ты там используешь udg_UltimateIshillEffect до засыпания на 20с и после. Что будет если в этот промежуток времени кто-нибудь снова вызовет триггер? Ацская сотона. Я не знаю как принято, но по-моему единственный выход - это локально создать группу, чтобы она у кастующего юнита была своя, а в конце триггера её удалять.
Прочитай пару туториалов про локальные переменные и утечки. Если не прозреешь - перепишу всё на кастомный код за тебя, чтобы как пример был наглядный.

23

» WarCraft 3 / Как удалить все файлы импорта?

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
Почему по одиночке, можно же сразу всей пачкой? С тем но что пути не сохранятся.
И импортируются они так же пачкой. Выдели отдельную папку и всё.
ответ
~8gabriel8:
Оригинально) Круто, что работает.
По идее нужно не mdx открывать в Блокноте, а пересохранить модель в формат mdl и открывать в Блокноте её. Файлы tga являются просто другим форматом текстур, который используется в игре. Если слишком много весят, можешь перевести в blp, но считается, что у tga качество получше.
ответ
Я думаю, что нужно копать в сторону файлика war3campaign.imp, я не шарю в hex, хм. Думаю, что там побилось что-то

Обычный редактор помог мне понять в чем причина. У меня был триггер, который очищал память после ролика. Я наверное излишне заморачиваюсь с оптимизацией, ведь близзы такого и близко не делали, но я удаляю все, что уже не используется: звуки, области, локации и так далее. Так вот у меня было 3 области, на которые были повешены звуки. И хоть я и закомментил название переменных в коде в этом триггере, мне редактор звука не давал завести переменные до тех пор, пока я не удалил закомментированный код. Получилось по новой завести переменные и карта стала запускаться! Фух, я аж выдохнул, а то уже отчаяние подступало, неделя работы ушла бы коту под хвост. Огромное спасибо тебе дружище, что отозвался и пытался набрасывать на вентилятор варианты, ты очень поддержал меня морально в трудную минуту!

23

» WarCraft 3 / Вылетает редактор карт

Похожие вопросы:

ответ
Оказывается причина была намного сложнее)))
Тот самый триггер-комментарий был обычным триггером (т.е хранил всю информацию о действиях и т.д), но отображался как комментарий
Поэтому помогло только его удаление
ответ
Нужно фиксить реестр,
  1. "Открыть редактор реестра (Windows + R, ввести regedit).
Перейти по пути HKEY_CURRENT_USER\SOFTWARE\Blizzard Entertainment\WorldEdit.
Найти строку Tool Windows и удалить ее.
Готово. Теперь редактор старых версий будет работать. Но проблема повторится, если зайти в редактор 1.32. При ее возникновении нужно заново удалить строку Tool Windows."
  1. Делал для себя прогу, которая делает вариант 1 автоматом. Гарантий не дам. drive.google.com/file/d/1R4Kh_7iS9RdUxA9TU_-r_UnayHjZ6Kev/view?u...
ответ
В настройках редактора попробуй поставить настройки графики средние или низкие.
проверил только что, ты прав, проблема в настройках графики, только наоборот, надо ставить Высокие чтобы модель не крашала редактор.
Собственно, фикс:
  1. Зайти в редакторе в Файл -> Параметры
  2. Поставить здесь всё на Высокие, либо галочку "параметры из варкрафта" и в самом варкрафте в настройках поставить всё на высокие.
Модели вообще редко тестируются на других настройках графики, в основном все пилится под Высокие, так что следует их оставить навсегда и не играть на других.

23

» WarCraft 3 / ⚽ Banjoball v1.21a: Эпичный Футбол с Магией в Warcraft 3! 🔥🎮

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Подозрение в нарушении правил сайта. Требуется валидация человеком.
Условия прохождения автомодерации:
Ресурс должен включать ссылку на внешний видеоисточник или внутренний видеоплеер.
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Suspicion of violating site rules. Human validation required.
// CID0
23

» WarCraft 3 / Пути к модельке способности

Похожие вопросы:

ответ
В модел эдиторе перенеси нужную кость в начало координат и в ключевых фреймах пропиши одинаковые координаты для этой кости. Вот и проверишь.

23

» WarCraft 3 / Анимация модели не фиксится в mdlvis

Похожие вопросы:

ответ
проверьте анимацию в model editor'е
если там криво, значит нужно искать кривой кадр, копировать его, удалять, и вставлять снова на то же место

23

» WarCraft 3 / Классификация воина

Похожие вопросы:

ответ
~8gabriel8:
В любом случае приказ ПКМ - это приказ smart, то есть попробуй такой триггер:
Событие - Generic unit Отдал приказ цель-точка
Условие - Unit-type of (Triggering unit) равно Твой_городской_защитник и (Issued order) равно smart
Действие - Pause (Triggering unit), Issue order with no target Стоп (Triggering unit) и Unpause (Triggering unit)

23

» WarCraft 3 / illidan test

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Число вставленных изображений: 0, а требуется не менее 1
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Count of inserted images is: 0, but required not less than 1
// CID3
23

» WarCraft 3 / Приоритеты для атаки врагами

Похожие вопросы:

ответ
8gabriel8, приоритет менять нельзя
стандартный ии использует это поле для контроля юнитов
пишем свой ии в котором вместо приоритета юзаем свою переменную которой можем задавать любое значение
8gabriel8:
Но для меня это путь в Москву через Владивосток
ну если между тобой и Москвой находится Владивосток то иначе никак(а вар3 как раз расположен за Владивостоком)
ответ
Пока для тестирования оставил вариант с маленькой атакой, так как для нее не требуется писать дополнительных скриптов. Я не знаю, как работают функции отбора групп (отрядов) по условиям и как это оптимизировано внутри игры, но есть подозрение, что если в таймере выбирать все стенки на карте и потом искать боевые единицы врага вокруг каждой из них, это может быть долго. Для такого варианта хорошо кэшировать стены при постройке, но я на время тестирования не стал над этим заморачиваться. Всем спасибо за помощь.

23

» WarCraft 3 / Перезарядка способности

Похожие вопросы:

ответ
используй морф, например способность Темный 'Srtt'
ответ
Найди эту переменную и нажми ПКМ и обнулить
ответ
8gabriel8, с манакостом, именно с манакостом.
ответ
Мб переписать нужный тебе функционал под мх второй версии?
Я перенес минимум функций, т.к их вопервых овер дохрена, вовторых переносил самые популярные и простые, надо дллок тогда было.

23

» Администрация XGM / Просмотр моделей

Похожие вопросы:

ответ
vincent_freeman, да есть такая проблема. Да, будет исправлена когда у товарищей техадминов будет время и не будет заданий приоритетней. Скорее всего будет пофикшено в следующей версии сайта (v9). Нет смысла вычерпывать воду с тонущего корабля. Ждём.
ответ
По stand мы так и делаем. По превью пока сложно. Возможно, вернемся к этому, когда отточим все механики обычного показа моделей.
Нам в этом плане ещё по механикам файловой системы надо пахать, мы даже размеры картинок не храним по историческим причинам.
ответ
ответ
Я не хочу всё супер правильно делать полдня, это такая мелочь, что это не мешает выполнять основные задачи.
Открытие системного меню блокируется для того, чтобы при выезде мыши за область рендеринга и отпускании клавиши оно не всплывало.

23

» Администрация XGM / Дублирование ресурса в ленте

Похожие вопросы:

ответ
Забавно. На самом деле это два разных вопроса, но с одинаковым именем и совпадающей ссылкой.
ответ
Теперь в ленте всегда листятся оригиналы.
А в списке ресурсов свернутое краткое описание и превью.
Плюс обновил UI индикации репоста на странице ресурса.

23

» WarCraft 3 / Нужна помощь с Мемхаком

Похожие вопросы:

ответ
События мыши и нажатия хоткеев на мемхаке не синхронизируются, нужен или внешний синхронизатор или терпите задержку по 0.2 секунды.
Но опять таки, искали вы плохо или смотрели не внимательно. Стоит внимательнее почитать мои ресурсы на эту тему.
Микс на wasd движение есть в двух экземплярах, от пользователя Unryze и от ENAleksey, оба они работают по аналогичному принципу: нажатие WASD эмулирует нажатие стрелочек Arrow. Потому что только эти клавиши (ну и ESС) имеют игрока, хотите полноценный WASD - используйте Рефорджевые патчи, там с этим всё гораздо лучше.
Так вот по поводу микса, микс можно вшить прям в карту, и игроку не нужно ничего качать. Чтобы микс активировать, нужно просто использовать ExoprtAndInjectDll, функция есть в обоих версиях мемхака (если последний можно назвать 3 мемхаком).
Версия от Алексея немного багованная и вызывает конфликты с одновременным нажатием, версия Анрайза лучше и стабильней, но не неё антивирусы ругаются, это может не понравиться некоторым игрокам.
Пример карты, где WASD работает по сети в 126 патче
Пример карты, где WASD работает по сети на 132.8+ (последнем патче)
Обе карты мои, весь код открыт, я живой, я тут подскажу/расскажу/научу
ответ
По возможности убери все способности на порчу, в коде намёков на десинки не увидел.

23

» WarCraft 3 / AutoLoad RPG Maps

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Длина текста: 910, а требуется не менее 1000
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Text length is: 910, but required not less than 1000
// CID4
23

» WarCraft 3 / Ограничение в Lua

Похожие вопросы:

ответ
Он кладет это дело в память после preloader`а Можно код изменять напрямую в озу.
ответ
Ох, есть некоторый опыт в этом, правда не задокументированный, в общем: если вызовов мало, то GC прекрасно справляется, если вы обращаетесь к памяти очень часто, то GC вообще не вызывается. В общем от размеров проекта зависит. Если это наработка - то забейте болт. Если это большой проект - то забудьте за существование GC, и обнуляйте локалки очищайте таблицы, иначе ваша карта будет через час игры жрать 10 гигов. И я не утрирую, это мои наблюдения. Это не конкретно проблема луа, это проблема гавнорефа. И так, как реальный разработчиков 2,5 человека, которые доводили проекты на луа до конца, то истину придётся опробовать самостоятельно

23

» WarCraft 3 / Требование уровня

Похожие вопросы:

ответ
Всем спасибо, все свободы.
Этот даунитос опять облажался. Кому интересно обьяснение:
Способность - Izanagi: при использовании делает героя однократно бессмертным(типа одноразового баффа на восстановить 100% хп при летальном уроне) на 20 сек, по истечению которых или при трате этого "баффа", выключается ультимативная абилка(G), т.е. атака совершенным Сусаноо, требующим оба глаза у владельца, а Изанаги жертвует одним глазом. Следовательно, Изанаги можно использовать лишь два раза за жизнь(в смысле до смерти и последующего перерождения), при втором использовании ты теряешь возможность использовать также D и F(которая является самой Изанаги).
Чушка была в том, что я запускал триггер 0.01 текста при пике героя, а в нем было указано "если реал = 0(реал таймера баффа)", то иф, который уничтожает одного юнита требования, или другого, если первый уже уничтожен, но при старте этот реал был равен нулю и оно автоматически отрезало одного из юнитов.
Аве "Игра - сообщение в чат для (All Players)"!
"Игра - сообщение в чат для (All Players)" Аве!
(Т.е. я просто хотел схалтурить и запихнуть убавление переменной таймера и действия, исходящие из ее значения, в триггер текста, а он запускается в пике потому что у некоторых персов есть постоянный текст, типа значения его "волшебной брони", прочей дичи.)
ответ
требуемый уровень - сколько нужно для изучения 1 лвла абилы
пропустить требования уровня - + сколько нужно для следующих
ответ
Capitan Alex:
Как всегда затупил, кому было интересно: Характеристики, пропустить требования уровня. Вместо 0 ставим нужное значение.
ответ
Andreiki, ну просто создаёшь апгрейд-пустышку (без каких-либо улучшений внутри него).
Называешь так, как ты хочешь что бы это отображалось в требованиях, ну типа "Наличие любого герой не ниже 10-го уровня".
Ставишь этот апгрейд в требованиях там где нужно (где это у тебя? у нанимаемого юнита, при постройке здания, в лавке у предмета, на способности у юнита).
Создаёшь триггер с событием "Юнит повышает уровень". Ставишь условие, что если героический уровень юнита-инициатора равен 10, создаёшь новое действие: Игрок - техоногии/апгрейды, установить уровень технологии "Наличие любого герой не ниже 10-го уровня" для игрока владеющего юнитом-инициатором как 1.
Вот и всё, вроде.
ответ
А это не то совсем, это для апгрейдов.
Тебе нужно Stats - Level Skip Requirement

Поставь там 5 и посмотри что будет

По идеи будет 1/6/11/16/21
Если поставшь 4, то будет 1/5/9/13/17
Внизу есть пункт Stats - Required Level, это требование к уровню героя для первой прокачки. Если поствишь там тоже 4, то будет 4/8/12/16/20.

23

» WarCraft 3 / Majesty Guilds Time

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Типы файлов: png, jpg и не содержат один из: w3m, w3x, scm, scx, sc2map, sc2ma, pud, w3n, sc2mod, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
File types are: png, jpg and don't contain one of: w3m, w3x, scm, scx, sc2map, sc2ma, pud, w3n, sc2mod, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
// CID2